package beans;

/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */
import javax.annotation.Resource;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.transaction.UserTransaction;
import org.apache.myfaces.extensions.validator.crossval.annotation.Equals;

/**
 *
 * @author Nina
 */
@ManagedBean
@SessionScoped
public class ManagedBeanRegistrierung {

    @PersistenceContext(unitName = "mndrnwPU")
    private EntityManager em;
    @Resource
    private UserTransaction utx;
    private Benutzer benutzer = new Benutzer();
    @Equals("passwordConfirm")
    private String password;
    private String passwordConfirm;

    public Benutzer getBenutzer() {
        return benutzer;
    }

    public void setBenutzer(Benutzer benutzer) {
        this.benutzer = benutzer;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPasswordConfirm() {
        return passwordConfirm;
    }

    public void setPasswordConfirm(String passwordConfirm) {
        this.passwordConfirm = passwordConfirm;
    }

    public String save() {
        Benutzer exists;
        try{
        exists = (Benutzer)em.createNamedQuery("Benutzer.findByEmail", Benutzer.class).setParameter("email", benutzer.getEmail()).getSingleResult();
         if( exists != null )
        {
            return "/faces/registerError.xhtml";
        }
        }catch(Exception e){}
       
        benutzer.setPasswort(password);
        benutzer.setRolle("benutzer");
        try {
            utx.begin();
            em.persist(benutzer);
            utx.commit();

        } catch (Exception e) {
        }
        return "/faces/index.xhtml";
    }

    public String cancel() {
        reset();
        return "/faces/index.xhtml";
    }

    public void reset() {
        password = "";
        passwordConfirm = "";
    }

    public ManagedBeanRegistrierung() {
    }
}
